package com.gt.service.project;

import com.gt.dao.project.ProjectDAO;
import com.gt.entity.project.Project;
import com.gt.service.base.BaseServiceImpl;

import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 项目业务接口实现类
 * @author why
 */
@Service("projectService")
public class ProjectServiceImpl extends BaseServiceImpl implements ProjectService {

	// Fields

	@Autowired
	private ProjectDAO projectDAO;// 项目DAO接口

	// Methods

   /**
	* 添加项目
	*   id 主键值
	*   projectName 项目名称
	*   projectLanguage 1：js
	*   projectApikey js  apikey
	*   projectJsUrl js url
	*   userId 用户主键值
	*   debugNum 错误个数
	*   createTime 创建时间
	*   updateTime 修改时间
	* @return Long id 添加后的数据库主键值
	*/
	@Override
	public Long add(Project project) {
		// 构造项目参数实体
		this.projectDAO.insert(project);
		return project.getId();
	}

   /**
	* 删除项目
	*   id 主键值
	*/
	@Override
	public void delete(Long id) {
		// 调用项目DAO接口
		this.projectDAO.delete(id);
	}

   /**
	* 更新项目
	*   id 主键值
	*   projectName 项目名称
	*   projectLanguage 1：js
	*   projectApikey js  apikey
	*   projectJsUrl js url
	*   userId 用户主键值
	*   debugNum 错误个数
	*   createTime 创建时间
	*   updateTime 修改时间
	*/
	@Override
	public void edit(Project project) {
		// 调用项目DAO接口
		this.projectDAO.update(project);
	}

   /**
	* 主键查询项目
	*   id 主键值
	* @return Project 实体
	*/
	@Override
	public Project queryById(Long id) {
		// 调用项目DAO接口
		return this.projectDAO.selectById(id);
	}

   /**
	* 根据条件查询项目列表
	*   id 主键值
	*   projectName 项目名称
	*   projectLanguage 1：js
	*   projectApikey js  apikey
	*   projectJsUrl js url
	*   userId 用户主键值
	*   debugNum 错误个数
	*   createTime 创建时间
	*   updateTime 修改时间
	* @return List<Project> 实体List
	*/
	@Override
	public List<Project> queryList(Project project) {
			// 调用项目DAO接口
		return this.projectDAO.selectList(project);
	}

	/**
	 * 查询项目列表
	 * @param project
	 * @return
	 */
	@Override
	public List<Project> querySelectProject(Project project){
		return this.projectDAO.selectProject(project);
	}

	/**
	 * 根据用户名字查询该用户所有项目
	 * @param userName
	 * @return
	 */
	@Override
	public List<Project> querySelectByUserName(String userName){
		HashMap params = new HashMap();
		params.put("userName", userName);
		return this.projectDAO.selectByUserName(params);
	}

}